Tengo una expresión regular para controlar la cadena HTML del filtro con JavaScript, quiero obtener todas las imágenes de URL del atributo src en la etiqueta <img> , pero quiero admitir ambos caracteres < > y < > . Mi código de muestra como a continuación:
const filterImages = str => { const imgRegExp = /\&(?:quot|[gl]t);img.*?src="(.*?)"[^>]+>/g; const images = []; let img; while ((img = imgRegExp.exec(str))) { images.push(img[1]); } return images; }Se me ocurrió una expresión regular voluminosa como esta
(?:<img\s+src="(.*?)"[^.]*?\/?>|<img\s+src="(.*?)"[^.]*?\/?>)Lo he probado en el html de una página y parece estar bien https://regex101.com/r/zifqle/1
Para mayor comodidad, podría usar grupos de captura con nombre, pero parece que deben ser únicos, por lo que lo mejor que se me ocurre es
(?:<img\s+src="(?<url1>.*?)"[^.]*?\/?>|<img\s+src="(?<url2>.*?)"[^.]*?\/?>) También intente incluir el indicador m (multilínea) con la expresión regular